Package com.python.pydev.analysis.actions

Source Code of com.python.pydev.analysis.actions.PyGlobalsBrowserWorkbench

/**
* Copyright (c) 2005-2011 by Appcelerator, Inc. All Rights Reserved.
* Licensed under the terms of the Eclipse Public License (EPL).
* Please see the license.txt included with this distribution for details.
* Any modifications to this file must keep this entire header intact.
*/
/*
* Created on Jun 10, 2006
* @author Fabio
*/
package com.python.pydev.analysis.actions;

import org.eclipse.jface.action.IAction;
import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.ITextSelection;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.IWorkbenchWindowActionDelegate;
import org.python.pydev.core.docutils.PySelection;

import com.aptana.shared_core.utils.Reflection;

public class PyGlobalsBrowserWorkbench implements IWorkbenchWindowActionDelegate {

    private ISelection selection;

    public void dispose() {
    }

    public void init(IWorkbenchWindow window) {
    }

    public void run(IAction action) {
        String text = null;
        if (this.selection instanceof ITextSelection) {
            ITextSelection textSelection = (ITextSelection) this.selection;
            text = textSelection.getText();

            if (text == null || text.length() == 0) {
                //No selection... let's see if we can get a word there...
                //(note: not using getDocument because only 3.5 has it)
                Object document = Reflection.getAttrObj(textSelection, "fDocument");
                //returns null if we couldn't get it.
                if (document instanceof IDocument) { // document != null
                    PySelection ps = new PySelection((IDocument) document, textSelection);
                    try {
                        text = ps.getCurrToken().o1;
                    } catch (BadLocationException e) {
                        //ignore
                    }
                }
            }
        }

        PyGlobalsBrowser.getFromWorkspace(text);
    }

    public void selectionChanged(IAction action, ISelection selection) {
        this.selection = selection;
    }

}
TOP

Related Classes of com.python.pydev.analysis.actions.PyGlobalsBrowserWorkbench

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.